.PHONY: docker
docker:
	# 把上次编译的东西删掉
	@rm webook || true
	@docker rmi -f cutele/webook:v0.0.1
	# 运行一下 go mod tidy，防止 go.sum 文件不对，编译失败
	@go mod tidy
	# 指定编译成在 ARM 架构的 linux 操作系统上运行的可执行文件，
	# 名字叫做 webook
	#	@set GOOS=linux 不生效
	#    @set GOARCH=arm 不生效
	#go env -w GOOS=linux
	#go env -w GOARCH=arm
	# 正常
	#go env -w GOOS=windows
	#go env -w GOARCH=amd64
	#    @go build -o webook .
	@GOOS=linux GOARCH=arm go build -tags=k8s -o webook .
	# 这里你可以随便改这个标签，记得对应的 k8s 部署里面也要改
	@docker build -t cutele/webook:v0.0.1 .

# mockgen
mock:
	@mockgen -source=D:\.Cutele\go\webook\internal\service\user.go UserService
 	@mockgen -source=D:\.Cutele\go\webook\internal\service\code.go CodeService

	@mockgen -source=D:\.Cutele\go\webook\internal\repository\user.go UserRepository
	@mockgen -source=D:\.Cutele\go\webook\internal\repository\code.go CodeRepository

	@mockgen -source=D:\.Cutele\go\webook\internal\repository\cache\user.go UserCache
	@mockgen -source=D:\.Cutele\go\webook\internal\repository\cache\code.go CodeCache

	@mockgen -source=D:\.Cutele\go\webook\internal\repository\dao\user.go UserDao

 	@mockgen github.com/redis/go-redis/v9 Cmdable

 	@mockgen -source=D:\.Cutele\go\webook\internal\service\sms\types.go Service

 	@mockgen -source=D:\.Cutele\go\webook\pkg\limiter\types.go Limiter

 	@docker compose up
 	@docker compose down

	mockgen -source=D:\.Cutele\go\webook\internal\service\article.go ArticleService
	mockgen -source=D:\.Cutele\go\webook\internal\repository\article.go ArticleRepository
	mockgen -source=D:\.Cutele\go\webook\internal\repository\article_author.go ArticleAuthorRepository
	mockgen -source=D:\.Cutele\go\webook\internal\repository\article_reader.go ArticleReaderRepository
	mockgen -source=D:\.Cutele\go\webook\internal\repository\dao\article_author.go ArticleAuthorDao
	mockgen -source=D:\.Cutele\go\webook\internal\repository\dao\article_reader.go ArticleReaderDao

	mockgen -source=D:\.Cutele\go\webook\internal\service\interactive.go InteractiveService

	etcdctl --endpoints=localhost:12379 get service/interactive --prefix
	docker部分容器bind失败 端口被占用
	net stop winnat
	net start winnat